package pe.edu.upc.jaxws.service;

import java.util.List;

//import pe.edu.upc.jaxws.controller.DespachoController;
import pe.edu.upc.jaxws.dao.DespachoDao;
import pe.edu.upc.jaxws.model.Despacho;

import javax.jws.WebService;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.springframework.beans.factory.annotation.Autowired;

import com.google.gson.Gson;

@Path("/despacho")
@WebService(endpointInterface = "pe.edu.upc.jaxws.service.DespachoService")
public class DespachoServiceImplRest implements DespachoService {

	@Autowired
	DespachoDao despachoDao;

	@GET
	@Path("/obtDespacho/{codigo}")
	@Produces("application/json")
	public String getdespachoPorCodigo(@PathParam("codigo") String codigo) {
		Gson gson = new Gson();
		return gson.toJson(despachoDao.getDespachoPorCodigo(codigo));
	}

	@GET
	@Path("/getDespachos")
	@Consumes(MediaType.TEXT_PLAIN)
	@Produces(MediaType.APPLICATION_JSON)
	public String getDespachos() {
		Gson gson = new Gson();
		return gson.toJson(despachoDao.getDespachos());
	}

	@GET
	@Path("/getDespachosAtendidos")
	@Consumes(MediaType.TEXT_PLAIN)
	@Produces(MediaType.APPLICATION_JSON)
	public String getDespachosAtendidos() {
		Gson gson = new Gson();
		return gson.toJson(despachoDao.getDespachosAtendidos());
	}
	
	@GET
	@Path("/regDespacho/{codigo}/{fechaRegistro}/{fechaEntrega}/{cantidad}/{placa}/{atencion}")
	@Produces("application/json")
	public void registrarDespacho(@PathParam("codigo") String codigo,
			@PathParam("fechaRegistro") String fechaRegistro,
			@PathParam("fechaEntrega") String fechaEntrega,
			@PathParam("cantidad") String cantidad,
			@PathParam("placa") String placa,
			@PathParam("atencion") String atencion) {

		Despacho despacho = new Despacho();
		despacho.setCodigo(codigo);
		despacho.setFechaRegistro(fechaRegistro);
		despacho.setFechaEntrega(fechaEntrega);
		despacho.setCantidad(cantidad);
		despacho.setPlaca(placa);
		despacho.setAtendido(atencion);

		despachoDao.registrarDespacho(despacho);

		//DespachoController despachoController = new DespachoController();
		//despachoController.registraDespacho(despacho);
	}

}
